package com.xxzb.pack0824.线程池;

import java.util.concurrent.TimeUnit;

public class InterrupterDemo {
    public static void main(String[] args) {
        Thread t =  new Thread((new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 100; i++) {
                    System.out.println("线程中断信号:"+Thread.currentThread().isInterrupted());
                    /**
                     *取消线程-使用编程方式实现
                     * 将interrupt做为一个取消线程执行的信号，当线程内部收到该信号，则表示要取消当前线程的执行
                     * 使用编程的方式让任务方法执行结束即可
                     */


                    if(Thread.currentThread().isInterrupted()){
                        return;
                    }
                    System.out.println(Thread.currentThread().getName()+":"+i);
                    if(i==50){
                   /* try {
                        //休眠100秒
                        TimeUnit.SECONDS.sleep(100);
                    } catch (InterruptedException e) {//打断异常
                        throw new RuntimeException();
                    }*/
                    }
                }
            }
        }));

        t.start();

        t.setPriority(Thread.MAX_PRIORITY);
        for (int i = 0; i < 100; i++) {
            System.out.println(Thread.currentThread().getName()+":"+i);
            if(i==60){
                t.interrupt();//打断正在休息的线程
            }
        }
    }
}
